package com.gbas.muspulp;

import pulpcore.animation.Easing;
import pulpcore.animation.Property;
import pulpcore.animation.PropertyListener;
import pulpcore.image.Colors;
import pulpcore.image.CoreFont;
import pulpcore.image.CoreGraphics;
import pulpcore.image.CoreImage;
import pulpcore.sprite.*;

/**
 * User: t50
 * Date: 17-abr-2010
 * Time: 11:00:50
 */
public class Botonera extends Group {
    final static int BOTONERA_OPCION_ENVIDAR = 1;
    final static int BOTONERA_OPCION_PASAR = 2;

    CoreFont font = CoreFont.getSystemFont().tint(Colors.WHITE);
    TextField tfApuesta = new TextField("2", 32, 46, 50, font.getHeight());
    ImageSprite background = new ImageSprite("textfield.png", tfApuesta.x.get()-10, tfApuesta.y.get()-6);
    Slider slider = new Slider("slider.png", "slider-thumb.png", 14, 70);
 //   slider.setAnchor(0, 0.5);
    CoreImage buttonEnvido = CoreImage.load("btn_envido.png");
    CoreImage buttonLoveo = CoreImage.load("btn_loveo.png");
    CoreImage buttonPaso = CoreImage.load("btn_paso.png");
    CoreImage buttonOrdago = CoreImage.load("btn_ordago.png");
    CoreImage buttonMus = CoreImage.load("btn_mus.png");
    CoreImage buttonNomus = CoreImage.load("btn_nomus.png");

    Button btMus = new Button(buttonMus.split(3), 20, 40);
    Button btNoMus = new Button(buttonNomus.split(3), 130, 40);
    Button btEnvido = new Button(buttonEnvido.split(3), 70, 40);
    Button btLoveo = new Button(buttonLoveo.split(3), 400, 40);
    Button btPaso = new Button(buttonPaso.split(3), 180, 40);
    Button btOrdago = new Button(buttonOrdago.split(3), 290, 40);

    private int[][] tamanyos = {
            {250, 98},
            {400, 98},
            {510, 98},
            {250, 98},
    };
    public static final int TIPO_MUS = 0;
    public static final int TIPO_APUESTA = 1;
    public static final int TIPO_RESPUESTA = 2;
    public static final int TIPO_ORDAGO = 3;

    StretchableSprite spriteBack;

   // Group gr=new Group(320, 320);
    /*
    Tipos,
    Mus (2 botones), mus y nomus,
    Apuesta (3 botones) envido, paso y ordago
    Respuesta (3 botones) envido, veo, paso, y ordago
    Ordago (2 botones) veo y paso

     */

    public Botonera() {
        super(320,320);
        setAnchor(0.5, 0.5);

        tfApuesta.setMaxNumChars(2);
        tfApuesta.selectionColor.set(Colors.rgb(0x1d5ef2));
        tfApuesta.setFocus(true);
        tfApuesta.setAnchor(0, 0);

        slider.setRange(1,40);
        slider.value.set(2);
        tfApuesta.setText(slider.value.toString());
        
        slider.value.addListener( new PropertyListener() {
            public void propertyChange(Property property) {
                tfApuesta.setText(slider.value.toString());
                tfApuesta.setDirty(true);
            }
        });
        background.setAnchor(0, 0.0);
        visible.set(false);
    }

    public void createBotonera(int tipoBotonera) {
        removeAll();

        int sizeX = tamanyos[tipoBotonera][0];
        int sizeY = tamanyos[tipoBotonera][1];

        setSize(sizeX, sizeY);
        spriteBack = new StretchableSprite("border.9.png", 0, 0, sizeX, sizeY);
        add(spriteBack);


        if (tipoBotonera == TIPO_MUS) {
            add(btMus);
            add(btNoMus);
        } else  if (tipoBotonera == TIPO_APUESTA) {
            add(background);
            add(tfApuesta);
            add(slider);
            add(btEnvido);
            add(btPaso);
            add(btOrdago);
        } else  if (tipoBotonera == TIPO_RESPUESTA) {
            btLoveo.x.set(400);
            btPaso.x.set(180);
            add(background);
            add(tfApuesta);
            add(slider);
            add(btEnvido);
            add(btPaso);
            add(btOrdago);
            add(btLoveo);
        } else  if (tipoBotonera == TIPO_ORDAGO) {
            btLoveo.x.set(20);
            btPaso.x.set(130);
            add(btLoveo);
            add(btPaso);
        }

        double w = width.get();
        double h = height.get();

        setLocation(320, 800);
        moveTo(320, 320, 1000, Easing.BACK_OUT);
        visible.set(true);
    }

    @Override
    public void update(int elapsedTime) {
        super.update(elapsedTime);
        if (btEnvido.isClicked()) {
            //
            String points = tfApuesta.getText();
            escaleToBye();
        }
        if (btPaso.isClicked()) {
            //
            String points = tfApuesta.getText();
            escaleToBye();
        }
        if (btOrdago.isClicked()) {
            //
            String points = tfApuesta.getText();
            escaleToBye();
        }
        if (btLoveo.isClicked()) {
            //
            String points = tfApuesta.getText();
            escaleToBye();
        }
        if (btMus.isClicked()) {
            //
            String points = tfApuesta.getText();
            escaleToBye();
        }
        if (btNoMus.isClicked()) {
            //
            String points = tfApuesta.getText();
            escaleToBye();
        }

    }

    public void escaleToBye() {
        double w = width.get();
        double h = height.get();

        moveTo(x.get(), 800, 1000, Easing.BACK_OUT);
        //scale(w, h, 10*w, 10*h, 1000, Easing.BACK_OUT);
        visible.set(false, 1000);
    }
}
